#!/bin/bash
set -e

# explicit list of os/arch combos that support being a daemon
declare -A daemonSupporting
daemonSupporting=(
	[linux/amd64]=1
	[windows/amd64]=1
)

# if we have our linux/amd64 version compiled, let's symlink it in
if [ -x "$DEST/../binary-daemon/dockerd-$VERSION" ]; then
	mkdir -p "$DEST/linux/amd64"
	(
		cd "$DEST/linux/amd64"
		ln -s ../../../binary-daemon/* ./
		ln -s ../../../binary-client/* ./
	)
	echo "Created symlinks:" "$DEST/linux/amd64/"*
fi

for platform in $DOCKER_CROSSPLATFORMS; do
	(
		export DEST="$DEST/$platform" # bundles/VERSION/cross/GOOS/GOARCH/docker-VERSION
		mkdir -p "$DEST"
		ABS_DEST="$(cd "$DEST" && pwd -P)"
		export GOOS=${platform%/*}
		export GOARCH=${platform##*/}

		# !!! TEMPORARY HACK !!!
		# See Dockerfile
		if [ "$platform" == "windows/amd64" ]; then
			export GOROOT="/usr/local/go${HACK_GO_VERSION}"
			export PATH=$(echo "$PATH" | sed "s,:/usr/local/go/bin:,:/usr/local/go${HACK_GO_VERSION}/bin:,")
		fi

		if [ -z "${daemonSupporting[$platform]}" ]; then
            # we just need a simple client for these platforms
			export LDFLAGS_STATIC_DOCKER=""
            # remove the "daemon" build tag from platforms that aren't supported
            export BUILDFLAGS=( "${ORIG_BUILDFLAGS[@]/ daemon/}" )
		    source "${MAKEDIR}/binary-client"
        else
		    source "${MAKEDIR}/binary-client"
		    source "${MAKEDIR}/binary-daemon"
		fi
	)
done
